Many enterprises implement a directory service to store and manage enterprise data, such as user data, user account data, group data, etc. The directory service can be hosted by a directory server and can store the enterprise data using a directory for all of the information in a single, network-accessible repository. The directory can be a directory that uses a lightweight directory access protocol (LDAP). The enterprise data in a LDAP based directory may be replicated among a number of directory servers.
Various database operations, such as search and update operations, can be performed on the enterprise data stored in the LDAP based databases. For example, the databases may store user contact information and a user may use a client to search the contact information for entries that have a zip code of 94085. In another example, the databases may store a telephone number for Joe Smith and a user may use a client to update the data for Joe Smith with a new telephone number.
Clients, which are compatible with the LDAP, can communicate directly with the directory servers to send a search or an update request to the directory servers and to receive request results directly from a directory server. However, a directory service environment that requires each directory server to communicate directly with each LDAP compatible client can restrict the resources of the servers and the clients, which can negatively affect the performance of the servers and the clients. In addition, a directory service environment where each directory server communicates with each LDAP compatible client is not easily scalable and can limit the number of directory servers and clients that can be deployed in the environment. When the resources of the directory servers and the clients reach a maximum capacity, a system administrator cannot easily scale the directory service environment. Moreover, not all clients are compatible with the lightweight directory access protocol. Such clients, which are not LDAP compatible, may not easily send an update request or search request to a directory server, nor may they easily obtain operation results from a directory server.